This description relates to controlling tasks performed by a computing system.
In some techniques for controlling tasks performed by a computing system, an individual task is performed by a process or thread that is spawned for that task and terminates after that task has been completed. An operating system of the computing system, or other centralized control entity that uses features of the operating system, may be used to schedule different tasks, or manage communication between different tasks. A control flow graph may be used to define a partial ordering of tasks by indicating certain upstream tasks (e.g., task A) that must complete before other downstream tasks (e.g., task B) begin. There may be a control process that manages spawning of new processes for performing tasks according to the control flow graph. After the control process spawns process A for performing task A, the control process awaits notification by the operating system that process A has terminated. After process A has terminated, the operating system notifies the control process, and then the control process spawns process B for performing task B.